
source ~/.bashrc
export CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7"
lang=zh  # en zh
prompt_file=conf/prompt_stage4.yaml

ckpt_path=/home/node54_tmpdata2/xlgeng/code/OSUM_hotword/examples/osum/exp_tranformer_context_encoder/epoch2_5/step_83749.pt

data_path=/home/work_nfs11/znlin/znlin_nfs11/wenet_DV/examples/librispeech/s0/data/all_biased/data.list
ref_path=/home/work_nfs11/znlin/znlin_nfs11/wenet_DV/examples/librispeech/s0/data/all_biased/text  # 参考音频路径，用于计算wer, 其格式为scp文件的格式，每一行形如“key 真实答案”,其可以用空格或者tab分隔
# raw: jsonl格式，每行一个json字符串，至少包含key wav  txt
# shard_full_data: 每行一个shard文件路径
# 将data_path平分到4分，并存入./data/split_data_4/目录下，每个文件包含1/4的数据
split_num=4
split_data_dir=./data/split_data_$split_num
mkdir -p "$split_data_dir"

# 计算每个文件的行数
total_lines=$(wc -l < "$data_path")
lines_per_file=$(( (total_lines + split_num - 1) / split_num ))

# 按行分割文件
split -l "$lines_per_file" -d -a 1 "$data_path" "$split_data_dir/data_part_"
for i_haha in {0..3}
do
    data_path=$split_data_dir/data_part_$i_haha
    data_type="raw" #  raw or shard_full_data
    gpu_id=$i_haha  # 要使用的gpu编号
    output_dir=./exp/with_hotword/output_infer_$i_haha   # 结果的输出路径
    mkdir -p $output_dir
    echo "infer on $i_haha-th split data, data_path=$data_path, gpu_id=$gpu_id, output_dir=$output_dir"
    word_list_path=/home/work_nfs11/znlin/znlin_nfs11/wenet_DV/examples/librispeech/s0/data/all_biased/all_biased_list_unigram5000_tokens
    task="<TRANSCRIBE>" # 不含空格，任务切换，更多任务参考conf/prompt_config.yaml
    my_named_nohup do_infer_with_hotword_$i_haha bash decode/do_docode.sh --word_list_path $word_list_path --ref_path $ref_path --output_dir $output_dir --task $task --data_type $data_type --data_path $data_path --gpu_id $gpu_id --ckpt_path $ckpt_path --lang $lang --prompt_file $prompt_file
done

for i_haha in {4..7}
do
    j_haha=$((i_haha-4))
    data_path=$split_data_dir/data_part_$j_haha
    data_type="raw" #  raw or shard_full_data
    gpu_id=$i_haha  # 要使用的gpu编号
    output_dir=./exp/no_hotword/output_infer_$j_haha   # 结果的输出路径
    echo "infer on $i_haha-th split data, data_path=$data_path, gpu_id=$gpu_id, output_dir=$output_dir"
    mkdir -p $output_dir
#    word_list_path=/home/work_nfs11/znlin/znlin_nfs11/wenet_DV/examples/librispeech/s0/data/all_biased/all_biased_list_unigram5000_tokens
    word_list_path=none
    task="<TRANSCRIBE>" # 不含空格，任务切换，更多任务参考conf/prompt_config.yaml
    my_named_nohup do_infer_with_hotword_$i_haha bash decode/do_docode.sh --word_list_path $word_list_path --ref_path $ref_path --output_dir $output_dir --task $task --data_type $data_type --data_path $data_path --gpu_id $gpu_id --ckpt_path $ckpt_path --lang $lang --prompt_file $prompt_file
done